import axiosInstance from './axiosInstance';

/**
 * 成本记录管理相关API
 */
export const costRecordApi = {
  /**
   * 获取部门列表
   * @returns {Promise} - 返回Promise对象
   */
  getDepartments: () => axiosInstance.get('/departments'),

  /**
   * 获取成本项目列表
   * @returns {Promise} - 返回Promise对象
   */
  getCostItems: () => axiosInstance.get('/cost-items'),

  /**
   * 获取申请人列表
   * @returns {Promise} - 返回Promise对象
   */
  getUsers: () => axiosInstance.get('/users'),

  /**
   * 获取成本记录列表
   * @param {Object} params - 查询参数
   * @param {string} params.recordNo - 记录编号（可选）
   * @param {number} params.departmentId - 部门ID（可选）
   * @param {number} params.costItemId - 成本项目ID（可选）
   * @param {number} params.applicantId - 申请人ID（可选）
   * @param {string} params.startDate - 开始日期（可选）
   * @param {string} params.endDate - 结束日期（可选）
   * @param {number} params.costType - 成本性质（可选）
   * @param {number} params.paymentStatus - 支付状态（可选）
   * @param {number} params.approvalStatus - 审批状态（可选）
   * @param {number} params.page - 页码
   * @param {number} params.pageSize - 每页大小
   * @returns {Promise} - 返回Promise对象
   */
  getCostRecords: (params) => axiosInstance.get('/cost-records', { params }),

  /**
   * 获取成本记录详情
   * @param {number} id - 成本记录ID
   * @returns {Promise} - 返回Promise对象
   */
  getCostRecordById: (id) => axiosInstance.get(`/cost-records/${id}`),

  /**
   * 新增成本记录
   * @param {Object} recordData - 成本记录数据
   * @returns {Promise} - 返回Promise对象
   */
  addCostRecord: (recordData) => axiosInstance.post('/cost-records', recordData),

  /**
   * 更新成本记录
   * @param {number} id - 成本记录ID
   * @param {Object} recordData - 成本记录数据
   * @returns {Promise} - 返回Promise对象
   */
  updateCostRecord: (id, recordData) => axiosInstance.put(`/cost-records/${id}`, recordData),

  /**
   * 删除成本记录
   * @param {number} id - 成本记录ID
   * @returns {Promise} - 返回Promise对象
   */
  deleteCostRecord: (id) => axiosInstance.delete(`/cost-records/${id}`),

  /**
   * 更新成本记录状态
   * @param {number} id - 成本记录ID
   * @param {Object} statusData - 状态数据
   * @returns {Promise} - 返回Promise对象
   */
  updateCostRecordStatus: (id, statusData) => axiosInstance.put(`/cost-records/${id}/status`, statusData),

  /**
   * 审批成本记录
   * @param {number} id - 成本记录ID
   * @param {Object} approvalData - 审批数据
   * @returns {Promise} - 返回Promise对象
   */
  approveCostRecord: (id, approvalData) => axiosInstance.put(`/cost-records/${id}/approve`, approvalData),

  /**
   * 获取成本分析数据
   * @param {Object} params - 查询参数
   * @param {number} params.departmentId - 部门ID（可选）
   * @param {string} params.startDate - 开始日期
   * @param {string} params.endDate - 结束日期
   * @param {number} params.analysisType - 分析类型：1-按部门 2-按成本项目 3-按时间
   * @returns {Promise} - 返回Promise对象
   */
  getCostAnalysis: (params) => axiosInstance.get('/cost-records/analysis', { params }),

  /**
   * 搜索成本记录
   * @param {Object} params - 搜索参数
   * @returns {Promise} - 返回Promise对象
   */
  searchCostRecords: (params) => axiosInstance.get('/cost-records/search', { params })
};

export default costRecordApi;